package com.wen.singalMode;

import java.util.Random;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * 单例模式的扩展 我如果需要当前类只能生成2、3个对象怎么处理
 * 1.维护两个静态final变量?
 * 2.维护一个集合  但是集合里面的数据怎么保证高并发下的数据安全和唯一？
 *
 */
public class Singleton {

    private static final int maxObjectNum = 2;

    private static CopyOnWriteArrayList<Singleton> list = new CopyOnWriteArrayList();

    static{
        for (int i = 0; i < maxObjectNum; i++) {
            list.add(new Singleton());
        }
    }

    public static Singleton getSingleton(){
        Random random = new Random();
        int i = random.nextInt(maxObjectNum);
        System.out.println(i);
        return list.get(i);
    }

}
